User blog:CodeHK/Plans to Adopt Lua
For a very long time now, Ar-cen-ciel and I have wanted to get the Wikia's data into a collective format to streamline work for editors and more easily present data. Why Currently, every page on the Wikia (now over 400 pages) is edited separated. Even if there's similar information between these pages, they are copy-pasted by and across these pages and result in mistakes. The plan is to put character data into Lua modules so that we can share the data across pages. Any update to a module would change all the pages relevant to that character. What Will Change Editors will edit the Lua module for individual characters if they want to change any information about them that is included in the overview. Editors will still edit the character page for adding quotes and background information. Editors will not edit the List of Flower Knight Girls, List of Flower Knights by ID, Skill Lookup, or Ability Lookup pages anymore. Said pages will look significantly smaller in the source code because Lua modules will handle creating those pages dynamically instead. The Character Module would be responsible for managing the information of singular or all characters. It would be used for displaying individual characters on their own pages. For this purpose, it will need to connect to a module that displays skill descriptions in a consistent manner. Similarly, it will connect to a module for ability descriptions. The old Template:CharacterStat will have a new purpose of simply invoking the Character Module. What Needs to be Done *The output of Template:CharacterStat must be recreated through Lua in Module:Character so that we can display the character info through Lua instead. Partially done. It only makes correct cards for some situations (bloomable and non-bloomable 5/6* girls). See Module:Character. *The output of Template:AbilityText must be recreated in Lua. It will be used in Ability Lookup and in individual character pages through Module:Character. Done: See Module:Ability. *Consistent skill descriptions must be made in Lua. It will be used in Skill Lookup and in individual character pages through Module:Character. Done. See Module:Skill. *The output of the script that interprets the character's info needs to output in a format for Module:Character instead of Template:CharacterStat. Done. See the GitHub repository. *Over 300 module pages for the existing flower knights must be created. This should definitely be done programmatically rather than by hand, so that requires learning how to use a programming language like Python to determine the list of all existing flower knights, edit a page's text (done), and create pages for the character modules. Problems to Address Character Names Naming conventions for character pages is of critical concern. Character pages get their name changed every so often due to various reasons. If we made Module:Character work with English character names, it would be very chaotic every time a change to a name was made. To make matters worse, the current naming convention for image filenames is based on the character in question. The solution is indirection, but we must decide how to implement this indirection. A potential proposition is to have a list of valid flower knight IDs in a separate Lua module. This module only contains a table all flower knight English names. Anytime an editor changes the character's name, they must update this list by replacing the old English name with the new English name. The list would look like this. return { "Savlia", "White Pansy", } No order is required, but sorting it may be nice for the editors. Update: The format was discussed and we decided to create a page dedicated to listing out all flower knights by Japanese name and pre-evolution/skin IDs. It is Module:CharacterList. This page will be updated by a bot in the future. The English names of flower knights given by users will be embedded in the character's individual module. The module name would be in Japanese. For example, Module:オンシジューム knows the accepted English name "Dancing Lady Orchid" and Nutaku name "Oncidium". Her page would be Dancing Lady Orchid which will access this information by calling Module:Character and looking up オンシジューム. When Will it be Done Whenever I get motivation. Please don't forget that I have a job outside of my hobbies. Category:Blog posts